package componentes.progressbar.control
{
	import componentes.progressbar.util.ProgressBarUtil;
	
	import flash.display.DisplayObject;
	import flash.events.TimerEvent;
	import flash.utils.Timer;
	
	import mx.containers.Canvas;
	import mx.containers.TitleWindow;
	import mx.controls.Alert;
	import mx.managers.PopUpManager;

	public class ProgressBar extends TitleWindow
	{
		private static var lockScreen:TitleWindow = new TitleWindow;
		private static var progressBar:ProgressBarUtil = ProgressBarUtil.getInstance();

		public function ProgressBar()
		{
			super();
			this.width=236;
			this.height=64;
		}
		
		public static function lock(parent:DisplayObject):void {
			lockScreen.title = "Por favor aguarde...";
			lockScreen.width=236;
			lockScreen.height=64;
			lockScreen.setStyle("cornerRadius","10");
			lockScreen.setStyle("backgroundAlpha","0.0");
			lockScreen.setStyle("borderAlpha","0.0");
			lockScreen.addChild(progressBar);
			
			/* Instancia um novo timer
			* valor de 1000 é a quantidade de milisegungos para os disparos do TimerEvent
			* 40 é a quantidade em segundos para a finalização do timer
			*/ 
			
			var timer:Timer = new Timer(1000, 40); 
			// Adiciona um eventeListener ao Timer que rodará a função anônima a cada 1000 milisegundos
			timer.addEventListener(TimerEvent.TIMER, function(e:TimerEvent):void{
				if(e.target.currentCount == 3){ // Se a contagem do Timer for igual a 3, muda o padrão e o texto de ProgressBar
					progressBar.label = 'Pesquisando';
					progressBar.setStyle("color", 0x000000);
					progressBar.setStyle("chromeColor", 0xff9000);
				} else if(e.target.currentCount == 10){ // Se a contagem do Timer for igual a 10, muda o padrão e o texto de ProgressBar
					progressBar.label = 'Pesquisando.';
					progressBar.setStyle("color", 0x000000);
					progressBar.setStyle("chromeColor", 0xff9000);
				} else if(e.target.currentCount == 20){ // Se a contagem do Timer for igual a 20, muda o padrão e o texto de ProgressBar
					progressBar.label = 'Pesquisando..';
					progressBar.setStyle("color", 0x000000);
					progressBar.setStyle("chromeColor", 0xff9000);
				} else if(e.target.currentCount == 30){ // Se a contagem do Timer for igual a 30, muda o padrão e o texto de ProgressBar
					progressBar.label = 'Pesquisando...';
					progressBar.setStyle("color", 0x000000);
					progressBar.setStyle("chromeColor", 0xff9000);
				} else if(e.target.currentCount == 40){ // Se a contagem do Timer for igual a 40, muda o padrão e o texto de ProgressBar
					progressBar.label = 'Ainda Pesquisando...';
					progressBar.setStyle("color", 0x000000);
					progressBar.setStyle("chromeColor", 0xff9000);
					timer.reset(); // Reseta o Timer
					timer.start(); // Manda rodar de novo
				}					
			});
			timer.start(); // Starta o Timer pela primeira vez
			PopUpManager.addPopUp(lockScreen,parent,true);
			PopUpManager.centerPopUp(lockScreen);
		}
		
		public static function unlock():void {
			//lockScreen.removeAllChildren();
			PopUpManager.removePopUp(lockScreen);
		}
	}
}